Complex structures in an electronic design are often automatically generated from a set of parameters. A common example of an approach to implement such complex designs with parameters is to use parameterized cells (which are referred to herein as “pcells”). With pcells, a designer selects parameters to describe features of electronic components for a design of an integrated circuit. The pcell tool can then automatically generate multiple representations of the electronic components of the pcell based on the parameters. The parameterized data specified by the user minimizes the effort of data entry and editing in the design tool, and also reduces design rule violations.
Any suitable kind of design data can be parameterized in a pcell. For example, with a transistor pcell, the length, width, number of gate segments, and other design elements of the transistor, can be realized by simply inserting or changing one or more parameter values. For bipolar designs, parameterized data can include shapes such as arcs and circles. Design data can include text, and the location of the text may be relative to a virtual shape. Also, pieces of parameterized data can automatically appear, disappear, or replicate as a condition of another parameter.
Pcells have been implemented using different programming languages. For example, pcells are most commonly created using the Skill programming language. However, it may also possible to utilize other languages to create pcells, such as the Python, TCL, C, C++, and LISP programming language.
In some cases, a single organization may wish to permit usage of pcells written in different programming languages. For example, a semiconductor manufacturing/fabrication facility (often referred to as a “fab” or “foundry”) may develop process development kits (PDKs) for its customers that include components to be used within an electronic design. Since the fabrication facility typically has a diverse group of customers that utilize many kinds of design software and techniques, it is quite possible that the fabrication facility will want to offer the PDK with pcell components written in multiple programming languages.
The problem is that conventional electronic design automation (“EDA”) systems and tools are typically configured to only operate with pcells that are implemented using a single specific language. However, a company or organization may need to access, use, and/or distribute pcells that are created using multiple programming languages.
Therefore, there is a need for an approach that allows pcells written in different programming languages to be used by EDA tools, even if the EDA tools are not configured to natively understand the original programming language of the pcell.